package n_09;

/**
 * @author ChengMiao
 * @title: 09.判断回文数
 * @projectName leet-code-record
 * @description: TODO
 * @date 2023/4/4 09:41
 */
public class Demo {

    public static void main(String[] args) {
        /**
         * 给你一个整数 x ，如果 x 是一个回文整数，返回 true ；否则，返回 false 。
         *
         * 回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。
         *
         * 例如，121 是回文，而 123 不是。
         */

        System.out.println(isPalindrome(1111));
    }

    public static boolean isPalindrome2(int x) {
        if(x < 0 || (x % 10 ==0 && x != 0))return false;
        int revertedNumber = 0;
        while(x > revertedNumber){
            revertedNumber = revertedNumber * 10 + x %10;
            x /= 10;
        }
        return x == revertedNumber || x == revertedNumber / 10;
    }

    public static boolean isPalindrome(int x) {

        char[] chars = String.valueOf(x).toCharArray();
//        if(chars.length % 2 ==0){
//            return false;
//        }
        // 1 1
        int z = chars.length / 2;


        int k = 0;
        int j = chars.length-1;

        for (int i = 0; i < z; i++) {

            if(chars[k++] != chars[j--]){
                return false;
            }
            if(k==z || j==1){
                return true;
            }
        }

        return true;
    }
}
